/**
 * 断言测试说明
 *
 *    // 使用断言
 *    const assert = require("assert");
 *    // 引用根目录下的index.js文件
 *    const myModule = require("..");
 *    // 断言程序的执行结果是后会返回3
 *    assert.strictEqual(myModule.add(1, 2), 3);
 *    console.log("ok");
 */

const assert = require("assert");
const fs = require("fs");
const path = require("path");
const loader = require("@assemblyscript/loader");

// 获取当前目录的上一级目录
let upDir = path.resolve(__dirname, '..');
//
let imports = { /* imports go here */};

// 引入assembly模块
const wasmModule = loader.instantiateSync(fs.readFileSync(`${upDir}/build/optimized.wasm`), imports).exports;

// 执行assembly中的方法进行计算
let result = wasmModule.add(1, 2);
// 断言执行的结果等于3
assert.strictEqual(result, 3);

console.log(result)


// 测试assembly模块中的第二个方法
for (let i = 0; i <= 10; ++i) {
    console.log(`fib(${i}) = ${wasmModule.fib(i)}\n`)
}
